package main

import "fmt"

/*
【1】结构体是用户单独定义的类型，和其它类型进行转换时需要有完全相同的字段(名字、个数和类型)
【2】结构体进行type重新定义(相当于取别名)，Golang认为是新的数据类型，但是相互间可以强转
*/

type Student struct {
	Age int
}
type Person struct {
	Age int
}

//取别名
type Stu Student

func main() {
	var s Student = Student{10}
	var p Person = Person{10}
	s = Student(p)
	fmt.Println(s)
	fmt.Println(p)

	fmt.Println("---------------- ---------------- ----------------")

	var s1 Student = Student{19}
	var s2 Stu = Stu{19}
	//不能直接赋值, go认为类型不同, 必须要 Student(s2) 强转
	//s1 = s2
	s1 = Student(s2)
	fmt.Println(s1)
	fmt.Println(s2)

}
